package com.wuseguang.springcloud.service;

import com.wuseguang.springcloud.Filter.RequestParameterWrapper;
import com.wuseguang.springcloud.entity.AttendGroup;
import com.wuseguang.springcloud.entity.AttendShift;
import com.wuseguang.springcloud.util.Result;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface AttendService {
    /**
     * @描述 组合查询学生或教师考勤
     * @创建人 zm
     * @创建时间 2020/2/3
     */
    Map<String, Object> queryAttendAll(String attend_groupid, String school_id, String starttime, String endtime, String classids, String sid);

    /**
     * @描述 查该学校所有考勤组
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    List<Map<String, Object>> queryAttendGroup(String school_id, String admin, String teacherId);

    /**
     * @描述 组合查询所有考勤组
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    List<Map<String, Object>> queryAttendGroupAll(String school_id, String name);

    /**
     * @描述 删除考勤组
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    int delAttendGroupById(String school_id, String id);

    /**
     * @描述 根据id查询考勤组详细内容
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    Map<String, Object> queryAttendGroupById(String school_id, String id);

    /**
     * @描述 添加考勤组
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    int addAttendGroup(String school_id, AttendGroup attendGroup);

    /**
     * @描述 修改考勤组
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    int updateAttendGroup(String school_id, AttendGroup attendGroup);

    /**
     * @描述 根据考勤组查左右班级
     * @创建人 zm
     * @创建时间 2020/3/6
     */
    String attendGroupClassid(Integer id);

    String updateattendList(String shiftid, List<Map<String, Object>> userList, Map<String, Map<String, String>> mapShift, String time, String endtime, String attend_groupid, String school_id, int state, String starttime);

    /**
     * @描述 查询所有班次
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    List<Map<String, Object>> queryAttendShiftAll(String school_id);

    /**
     * @描述 根据id 查班次详情
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    Map<String, Object> queryAttendShiftById(String school_id, String id);

    /**
     * @描述 修改班次
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    Result updateAttendShiftById(String school_id, AttendShift attendShift);

    /**
     * @描述 添加班次
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    Result addAttendShiftById(String school_id, AttendShift attendShift);

    /**
     * @描述 删除班次
     * @创建人 zm
     * @创建时间 2020/2/5
     */
    Result delAttendShiftById(String school_id, String id);

    /**
     * @描述 导出考勤数据
     * @创建人 zm
     * @创建时间 2020/2/6
     */
    Map<String, Object> downloadAttend(RequestParameterWrapper request, HttpServletResponse response, String sid, String attend_groupid, String starttime, String endtime, String classids) throws IOException;

    Result findSchoolDepartmentStudent(String schoolId);

    /**
     * @描述 查询所有班级绑定考勤组的状态
     * @创建人 zm
     * @创建时间 2020/3/4
     */
    Result queryAttendClassidState(String schoolId);

    Result queryClassCallList(Integer schoolId, Integer gradeId, Integer classId, String startTime, String endTime, String name, Integer indexNo, Integer rows);
}
